package constellation.util;

import android.content.Context;
import android.content.res.AssetManager;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;

/*
读取assets文件当中的内容
 */
public class AssetsUtil {
    /*读取文件当中的字符串*/
    public static String getJsonByAssets(Context context,String filename){
//        1.获取到Assets文件管理器
        AssetManager am = context.getResources().getAssets();
        ByteArrayOutputStream baos = new ByteArrayOutputStream();  //内存流
//        2.读取内容
        try {
            InputStream is = am.open(filename);
//            3.读取输入流当中内容
            int hasRead = 0;  // 获取每一次读取的长度
            byte[]buf = new byte[1024]; //存储每一次读取的数组
            while (true){
                hasRead = is.read(buf);
                if (hasRead == -1) {
                    break;
                }
                baos.write(buf,0,hasRead);
            }
//            将内存流转换成字符串
            String msg = baos.toString();
            is.close();
            return msg;
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }

    /* 读取Assets文件夹当中的图片*/
    public static Bitmap getBitmapByAssets(Context context,String filename){
        Bitmap imgBitmap = null;
//        1.获取Assets文件夹管理者
        AssetManager am  = context.getResources().getAssets();
//        2.打开文件，获取输入流
        try {
            InputStream is = am.open(filename);
//            3.通过Bitmap管理器，将输入流直接转换成位图对象
            imgBitmap = BitmapFactory.decodeStream(is);
        } catch (IOException e) {
            e.printStackTrace();
        }
        return imgBitmap;
    }
}
